import 'dart:io';

main(){
  // 链式调用
  print("开始请求数据");
  getFirstData()
  .then((value){
    print("第一个函数执行完成,返回值是$value");
    return getSecondData();
  })
  .then((value){
    print("第二个函数执行完成,返回值是$value");
    return getThirdData();
  }).then((value){
    print("第三个函数执行完成，返回值是$value");
  }).catchError((error){
    print("请求数据失败，失败原因是:$error");
  });
 print("其他业务");
}
// 第一个函数执行
Future<int>getFirstData(){
  return new Future((){
    sleep(Duration(seconds: 2));
    return 100;
  });
}
// 第二个函数执行
Future<int>getSecondData(){
  return  Future((){
    sleep(Duration(seconds: 2));
    throw "第二个函数执行失败";
    return 200;
  });
}
// 第三个函数执行
Future<int>getThirdData(){
  return new Future((){
    sleep(Duration(seconds: 2));
    return 300;
  });
}
